// 视频会议相关类型定义
export interface VideoConferenceRoom {
  id: string;
  name: string;
  participants: number;
  createdAt: string;
}

export interface User {
  id: string;
  name: string;
  avatar?: string;
  isAudioOn: boolean;
  isVideoOn: boolean;
  isScreenSharing: boolean;
}

export interface Message {
  id: string;
  senderId: string;
  senderName: string;
  content: string;
  timestamp: Date;
}

export interface ScreenShareOptions {
  video: boolean;
  audio?: boolean;
  displaySurface?: 'monitor' | 'window' | 'application' | 'browser';
}

export interface PeerConnection {
  connection: RTCPeerConnection;
  dataChannel?: RTCDataChannel;
}

export interface MediaStateChange {
  roomId: string;
  userId: string;
  isVideoOn?: boolean;
  isAudioOn?: boolean;
}

export interface ScreenShareState {
  roomId: string;
  userId: string;
  isScreenSharing: boolean;
}

export interface ChatMessageEvent {
  roomId: string;
  message: Message;
}

export interface LeaveRoomEvent {
  roomId: string;
  userId: string;
}

export type VideoTrackState = 'enabled' | 'disabled';
export type AudioTrackState = 'enabled' | 'disabled';